﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Model.Acta;
namespace DataBase.Acta
{
    public static class DBActa
    {
        static string connection = "Data Source=JCIDatabase.db.10200093.hostedresource.com; Initial Catalog=JCIDatabase; User ID=JCIDatabase; Password='ucbJCI2012!'";
        public static Model.Acta.Acta getActa(string nro)
        {
            SqlConnection sql = null;
            Model.Acta.Acta acta = null;
            try
            {
                sql = new SqlConnection(connection);
                SqlCommand comando = sql.CreateCommand();

                comando.CommandText = "Select * From Acta where Nro = @nro";
                comando.Parameters.AddWithValue ("nro",nro);
                sql.Open();
                SqlDataReader reader = comando.ExecuteReader();
                
                if(reader.Read())
                {
                    acta = new Model.Acta.Acta();
                    acta.FechaUltimaModificacion = DateTime.Parse(reader["FechaUltimaModificacion"].ToString());
                    acta.Nro = reader["Nro"].ToString();
                    acta.VecesVista = int.Parse(reader["VecesVista"].ToString());
                }
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally {
                if (sql != null)
                {
                    sql.Dispose();
                }
            }
            return acta;
        }
        public static bool SetFecha(DateTime fecha, string Nro)
        {
            bool res = false;
            SqlConnection conn = null;

            try
            {
                conn = new SqlConnection(connection);
                SqlCommand comando = conn.CreateCommand();
                comando.CommandText = "UPDATE Acta SET FechaUltimaModificacion=@fecha where Nro = @nro";
                comando.Parameters.AddWithValue("fecha", fecha);
                comando.Parameters.AddWithValue("nro", Nro);
                conn.Open();
                comando.ExecuteReader();
                res = true;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                if (conn != null)
                {
                    conn.Dispose();
                }
            }
            return res;

        }
        public static bool miembroVioActa(string ci,string nro)
        {
            SqlConnection sql = null;
            bool res = false;
            try
            {
                sql = new SqlConnection(connection);
                SqlCommand comando = sql.CreateCommand();
                comando.CommandText = "SELECT ci FROM MiembroVeActa where CI=@ci and Nro=@nro";
                comando.Parameters.AddWithValue("ci", ci);
                comando.Parameters.AddWithValue("nro",nro);
                sql.Open();
                SqlDataReader reader = comando.ExecuteReader();
                if (reader.Read())
                {
                    res = true;
                }

                
            }
            catch (Exception e)
            {

                throw e;
            }
            finally
            {
                if (sql != null)
                    sql.Dispose();
            }
            return res;
        }
        
        public static bool InsertarMiembroEnVeActa(string ci, string nro)
        {
            if (miembroVioActa(ci, nro))
                return false;
            else
            {
                SqlConnection conn = null;
                try
                {
                    conn = new SqlConnection(connection);
                    SqlCommand comando = conn.CreateCommand();
                    comando.CommandText = "INSERT INTO MiembroVeActa (CI,Nro,Fecha) VALUES(@ci,@nro@fecha)";
                    comando.Parameters.AddWithValue("ci",ci);
                    comando.Parameters.AddWithValue("nro",nro);
                    comando.Parameters.AddWithValue("fecha",DateTime.Now.Date);
                    comando.ExecuteNonQuery();
                    return true;

                }
                catch (Exception e)
                {

                    throw e;
                }
                finally {
                    if (conn != null)
                        conn.Dispose();
                }

            }
        }
        public static bool InsertarActa(Model.Acta.Acta acta)
        {
            SqlConnection sql = null;
            bool res = false;
            try
            {
                sql = new SqlConnection(connection);
                SqlCommand comando = sql.CreateCommand();

                comando.CommandText = "INSERT INTO Acta (Nro,FechaUltimaModificacion,VecesVista) VALUES(@nro,@fecha,@veces)";
                comando.Parameters.AddWithValue("nro", acta.Nro);
                comando.Parameters.AddWithValue("fecha",acta.FechaUltimaModificacion);
                comando.Parameters.AddWithValue("veces",acta.VecesVista);
                sql.Open();
                comando.ExecuteNonQuery();
                res = true;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                if (sql != null)
                {
                    sql.Dispose();
                }
            }
            return res;
        }
    }
}
